﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sociedad.BL;
using Sociedad.DAL;

public partial class Login : System.Web.UI.Page
{
    UsuarioBL blUser = new UsuarioBL();
    vw_Listar_UsuarioRol beUserRol = new vw_Listar_UsuarioRol();

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                Iniciar_VariableSession();
            }
            else
            {
                lblMsj.Visible = false;
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un errror al intentar iniciar el sistema. Vuelva a intentarlo.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }

    protected void loginSOA_Authenticate(object sender, AuthenticateEventArgs e)
    {
        try
        {
            beUserRol = blUser.Verificar_Acceso(loginSOA.UserName, loginSOA.Password);
            if (beUserRol != null)
            {
                Session[Constantes.session_CodUsuario] = beUserRol.usr_Codigo;
                Session[Constantes.session_NomUsuario] = beUserRol.usr_Apellidos + ", " + beUserRol.usr_Nombres;
                Session[Constantes.session_CodRol] = beUserRol.rol_Codigo;
                Session[Constantes.session_NomRol] = beUserRol.rol_Descripcion;
                Session[Constantes.session_CodTipUO] = beUserRol.cprm_TipUO;
                Session[Constantes.session_AbrTipUO] = beUserRol.cprm_TipUODes;
                Session[Constantes.session_CodUniOrg] = beUserRol.cprm_CodUO;
                Session[Constantes.session_NomUniOrg] = beUserRol.cprm_UODes;
                Response.Redirect("Principal.aspx");
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un errror al intentar verificar los datos de autentificación. Vuelva a intentarlo.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }

    private void Iniciar_VariableSession()
    {
        Session[Constantes.session_CodUsuario] = "";
        Session[Constantes.session_NomUsuario] = "";
        Session[Constantes.session_CodRol] = "";
        Session[Constantes.session_NomRol] = "";
        Session[Constantes.session_CodTipUO] = "";
        Session[Constantes.session_AbrTipUO] = "";
        Session[Constantes.session_CodUniOrg] = "";
        Session[Constantes.session_NomUniOrg] = "";
    }
}